package cn.lovemmd.model.admin.dto;

import java.io.Serializable;

import javax.validation.constraints.NotBlank;

/**
 * 模型数据传输对象
 * 
 * @author TLS
 * @since 2024-01-01
 */
public class ModelDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 模型ID（更新时使用）
     */
    private Long modelId;

    /**
     * 模型名称
     */
    @NotBlank(message = "模型名称不能为空")
    private String modelName;

    /**
     * 模型职业
     */
    @NotBlank(message = "模型职业不能为空")
    private String modelOccupation;

    /**
     * 模型下载链接
     */
    @NotBlank(message = "模型下载链接不能为空")
    private String modelUrl;

    /**
     * 模型图片链接
     */
    @NotBlank(message = "模型图片链接不能为空")
    private String modelImg;

    /**
     * 模型来源
     */
    private String modelSource;

    /**
     * 骨骼绑定
     */
    private String boneBinding;

    /**
     * 物理绑定
     */
    private String physicsBinding;

    /**
     * 表情制作
     */
    private String expressionMaking;

    // 无参构造函数
    public ModelDTO() {}

    // 全参构造函数
    public ModelDTO(Long modelId, String modelName, String modelOccupation, String modelUrl, String modelImg,
                    String modelSource, String boneBinding, String physicsBinding, String expressionMaking) {
        this.modelId = modelId;
        this.modelName = modelName;
        this.modelOccupation = modelOccupation;
        this.modelUrl = modelUrl;
        this.modelImg = modelImg;
        this.modelSource = modelSource;
        this.boneBinding = boneBinding;
        this.physicsBinding = physicsBinding;
        this.expressionMaking = expressionMaking;
    }

    // Getter 和 Setter 方法
    public Long getModelId() {
        return modelId;
    }

    public void setModelId(Long modelId) {
        this.modelId = modelId;
    }

    public String getModelName() {
        return modelName;
    }

    public void setModelName(String modelName) {
        this.modelName = modelName;
    }

    public String getModelOccupation() {
        return modelOccupation;
    }

    public void setModelOccupation(String modelOccupation) {
        this.modelOccupation = modelOccupation;
    }

    public String getModelUrl() {
        return modelUrl;
    }

    public void setModelUrl(String modelUrl) {
        this.modelUrl = modelUrl;
    }

    public String getModelImg() {
        return modelImg;
    }

    public void setModelImg(String modelImg) {
        this.modelImg = modelImg;
    }

    public String getModelSource() {
        return modelSource;
    }

    public void setModelSource(String modelSource) {
        this.modelSource = modelSource;
    }

    public String getBoneBinding() {
        return boneBinding;
    }

    public void setBoneBinding(String boneBinding) {
        this.boneBinding = boneBinding;
    }

    public String getPhysicsBinding() {
        return physicsBinding;
    }

    public void setPhysicsBinding(String physicsBinding) {
        this.physicsBinding = physicsBinding;
    }

    public String getExpressionMaking() {
        return expressionMaking;
    }

    public void setExpressionMaking(String expressionMaking) {
        this.expressionMaking = expressionMaking;
    }
}
